package com.love.travel.mapper;

import java.util.List;
import com.love.travel.domain.TravelAttraction;

/**
 * 旅游景点（含地区信息）Mapper接口
 * 
 * @author love
 * @date 2025-10-15
 */
public interface TravelAttractionMapper 
{
    /**
     * 查询旅游景点（含地区信息）
     * 
     * @param attractionId 旅游景点（含地区信息）主键
     * @return 旅游景点（含地区信息）
     */
    public TravelAttraction selectTravelAttractionByAttractionId(Long attractionId);

    /**
     * 查询旅游景点（含地区信息）列表
     * 
     * @param travelAttraction 旅游景点（含地区信息）
     * @return 旅游景点（含地区信息）集合
     */
    public List<TravelAttraction> selectTravelAttractionList(TravelAttraction travelAttraction);

    /**
     * 查询旅游景点（含地区信息）列表
     *
     * @param productId 旅游景点（含地区信息）
     * @return 旅游景点（含地区信息）集合
     */
    public List<TravelAttraction> selectAttractionsByProductDestination(Long productId);

    /**
     * 查询旅游景点（含地区信息）列表
     *
     * @param productId 旅游景点（含地区信息）
     * @return 旅游景点（含地区信息）集合
     */
    public List<TravelAttraction> selectAttractionsByItineraryId(Long itineraryId);



    /**
     * 新增旅游景点（含地区信息）
     * 
     * @param travelAttraction 旅游景点（含地区信息）
     * @return 结果
     */
    public int insertTravelAttraction(TravelAttraction travelAttraction);

    /**
     * 修改旅游景点（含地区信息）
     * 
     * @param travelAttraction 旅游景点（含地区信息）
     * @return 结果
     */
    public int updateTravelAttraction(TravelAttraction travelAttraction);

    /**
     * 删除旅游景点（含地区信息）
     * 
     * @param attractionId 旅游景点（含地区信息）主键
     * @return 结果
     */
    public int deleteTravelAttractionByAttractionId(Long attractionId);

    /**
     * 批量删除旅游景点（含地区信息）
     * 
     * @param attractionIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTravelAttractionByAttractionIds(Long[] attractionIds);
}
